Skip to content

✨ Split target optimization from native synthesis - #1998

Merged
burgholzer merged 7 commits into
mainfrom
agent/1687-syn-01-target-synthesis
Aug 3, 2026
Merged

✨ Split target optimization from native synthesis#1998
burgholzer merged 7 commits into
mainfrom
agent/1687-syn-01-target-synthesis

Conversation

@burgholzer

@burgholzer burgholzer commented Aug 3, 2026

Copy link
Copy Markdown
Member

🤖 AI text below 🤖

Description

Separate target-independent two-qubit optimization, post-routing native synthesis, and final target-conformance verification into three independently benchmarkable QCO pass factories.

Profitable constant two-qubit runs are optimized before routing without forcing a target basis. After mapping, unsupported operations and routing SWAPs are synthesized once from the CompilerTarget-derived basis, and final conformance verifies operation kind, arity, parameters, actual provider site IDs, and ordered loci. CompilerTarget remains the sole authority for capabilities, including reverse-only symmetric loci and native SWAP support; native qco.pow shells are handled without falsely validating their bodies as top-level operations.

This removes the duplicate textual native-gate menu, parser, generated pass option, mqt-cc --native-gates, and the corresponding C++/Python convenience surfaces. PIPE-01 will compose these visible stages around the target-backed mapping merged in #1997; this PR deliberately does not introduce another default pipeline or compatibility shim.

This is SYN-01 in the compact QDMI–Compiler integration series and supersedes the approach in #1969. Reused native-synthesis work is credited to @simon1hofmann in the implementation commit and changelog.

No upgrade note is needed for the unreleased compiler collection.

Validation

  • Target synthesis: 20/20
  • Decomposition: 199/199
  • Compiler: 215/215
  • Focused MAP/SYN high-level API integration test: 1/1
  • C++ patch coverage: 92.1% against the 90% target on the pre-restack exact head
  • Interface-header targets and mqt-cc build/help/version checks
  • LLVM/MLIR 22.1.3 stub regeneration
  • Focused clang-tidy, targeted hooks, and full repository lint
  • Independent exact-head review

Checklist

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.
  • I have added migration instructions to the upgrade guide (if needed).
  • The changes follow the project’s style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

If PR contains AI-assisted content:

  • Any agent that created, edited, or submitted GitHub content was explicitly authorized for that scope, as required by our AI Usage Guidelines.
  • Every agent-authored or agent-edited public text body begins with the visible disclosure 🤖 *AI text below* 🤖 (titles are exempt).
  • I have disclosed AI assistance in the PR description.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

@burgholzer burgholzer added feature New feature or request c++ Anything related to C++ code MLIR Anything related to MLIR labels Aug 3, 2026
@burgholzer burgholzer self-assigned this Aug 3, 2026
@codecov

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

@burgholzer burgholzer added this to the MLIR Support milestone Aug 3, 2026
burgholzer and others added 4 commits August 3, 2026 20:40
Replace the duplicate native-gate menu with a minimal CompilerTarget basis adapter and independent pre-routing optimization, post-routing synthesis, and final conformance passes.

Keep exact operation and ordered-locus support authoritative, including native SWAPs, reverse-only symmetric entanglers, and modifier shells.

Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de>
Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
@mergify mergify Bot added the conflict label Aug 3, 2026
@burgholzer
burgholzer force-pushed the agent/1687-syn-01-target-synthesis branch from b0a5203 to 343a094 Compare August 3, 2026 18:56
@mergify mergify Bot removed the conflict label Aug 3, 2026
Make CompilerTarget's single-qubit basis authoritative, normalize symmetric gate support, and remove operand-reversal machinery.

Use U/CZ fusion with preplanned direct rewrites, cached provider tracing, and failure-atomic target synthesis.

Assisted-by: GPT-5.6 via Codex
Assisted-by: GPT-5.6 via Codex
@burgholzer
burgholzer merged commit 108454d into main Aug 3, 2026
33 checks passed
@burgholzer
burgholzer deleted the agent/1687-syn-01-target-synthesis branch August 3, 2026 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Anything related to C++ code feature New feature or request MLIR Anything related to MLIR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant